fix(web): track transaction completion and connection lifetime - #1334
fix(web): track transaction completion and connection lifetime#1334OskarEichler wants to merge 4 commits into
Conversation
🦋 Changeset detectedLatest commit: 3565f98 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
krizzu
left a comment
There was a problem hiding this comment.
this change removes thrown errors that are meaningful to user. I would rather throw an error, than silently fail with no info
|
Agreed that callers should retain meaningful failure information. I restored the typed |
Yes, that's true, I believe this is also a good thing to give feedback to consumer about this happening anyway, so throwing an error in order to retry would make sense |
Summary
Propagate open/transaction failures through caller promises, wait for deletion commit, close blocking connections and discard terminated connections.
Compatibility / observable behavior
removeMany now rejects when its transaction aborts. Version-change requests close the old connection; later calls reopen (and reject normally if another client upgraded beyond version 1). Blocked opens wait through IndexedDB instead of throwing from an unrelated event callback.
Related to #1331. This is a focused part of a source review; it does not claim the entire repository is bug-free.
Test Plan
yarn build:js,yarn test:ts(6 tasks),yarn test:lint(6 tasks),yarn test:formatandgit diff --checkpass on the combined review checkout.testAndroidHostTest,macosArm64TestandiosSimulatorArm64Testpass with Java 21. The first Android run used Java 17 and failed Robolectric's SDK 36/JDK check; rerunning with the project's documented JDK fixed the environment failure without a source workaround.